package com.example.android_day01.Dome

// 基本面相对象
fun normalUse() {
    var color = "酱色"

    // 基本的 类
    class Food {
        // var 可以修改 val 不能修改
        var name: String = "隆江猪脚饭"
        val price: Int = 15

        fun eat() {
            // this可以省略
            println("吧唧吧唧~~$name,$price,$color,好好吃~~")
        }
    }

    val f = Food()
    f.name = "猪脚饭拼烧鸭"
//    f.price = 666
    f.eat()
}

//入口函数
fun main() {
    //显示构造
    // 显式 构造函数
    // constructor(var name: String, var age: Int)  添加了 name和 age2个属性，并且支持实例化的时候进行初始化
//    class Dog constructor(var name: String, var age: Int) {
    class Gog(var name: String, var age: Int) {
        // 实例化时会自动执行，可以添加一些初始化的逻辑
        init {
            println("init方法")
            // 传入布尔值 true 无事发生，false 把 {}中的信息 作为异常抛出
            require(age <= 20) {
                "年龄不能超过20岁"
            }
            require(name.isNotEmpty()) { "姓名不能为空" }
        }
    }

    val g = Gog("萨摩耶", 6)
    println(g.name)
    println(g.age)
}